Workloads consist of computer-executable entities to which the assignment of hardware and software computing resources can be controlled. It is usual to consider workloads as executing in resource containers (e.g., compartments, partitions) to which computing resources may be allocated and assigned.
Herein, “computing resources” refers to quantifiable entities that can be assigned to partitions or other containers, wherein an assigned quantity has an effect on the function, performance, or cost associated with a workload running in that container. Examples of such resources include: processors, storage media, communication or I/O devices, computer software programs, environmental resources such as electrical power and cooling, and licenses for the use of such resources. Resources are commonly considered and manipulated as multiples of some minimum quantity or resource unit, which may be a natural consequence of the characteristics of the resource (e.g. individual processing units) or selected for reasons of convenience or performance (e.g. blocks of storage resource).
Workload management is performed upon a collection of workloads operating within a resource domain. A “resource domain” is a computing environment within which the operation of workloads can be monitored and, optionally, within which resources can be reassigned to control the resources available to each workload, e.g., as a function of parameters monitored during operation of the workloads. This reassignment may be accomplished by moving resources to the resource containers within which the workloads execute, or moving workloads to different resource containers.
Workload management software functions by monitoring operating parameters (e.g., resource utilization, response time, and queue length) associated with workloads, predicting the resources required to keep these operating parameters of each workload near user-specified targets, planning the allocation of resources to workloads based on these predictions and other resource management parameters and user-specified priorities, and then implementing the allocation plan by reassigning (i.e., transferring) resources to workloads or workloads to resources as appropriate to ensure that workloads receive the resources that have been allocated to them.
Reassignment of resources means the transfer of workloads or of computing resources from one resource container to another. Such reassignment may require variously: 1) transfers to be performed serially rather than in parallel; 2) synchronization of those environments; and/or 3) updating non-volatile data which ensures persistence of the assignment. As a result, resource assignment can be time consuming. The resulting delays in transferring resources from less deserving to more deserving workloads limit the effectiveness of workload management and the efficiency of data-center operation
Herein, related art is described to facilitate understanding of the invention. Related art labeled “prior art” is admitted prior art; related art not labeled “prior art” is not admitted prior art.